# -*- coding: utf-8 -*-
# File : test.py
# Author: taoyahui
# Date : 2022/5/8


# 在Python中，可以通过sqlite3模块对SQLite数据库进行操作，Python3安装完成后自动安装了sqlite3模块，因此可以直接导入。
import sqlite3
# 输出以下内容为显示sqlite3中包含的所有方法
print("输出以下内容为显示sqlite3中包含的所有方法")
print(', '.join(list(dir(sqlite3))))

# 第一步：连接数据库
connect = sqlite3.connect('0508.db')
# 输出以下内容为显示connect中包含的所有方法
print("输出以下内容为显示connect中包含的所有方法")
print(", ".join(list(dir(connect))))

# 第二步：创建游标
cursor = connect.cursor()
# 输出以下内容为显示connect中包含的所有方法
print("输出以下内容为显示cursor中包含的所有方法")
print(", ".join(list(dir(cursor))))


# 第三步：执行数据库操作(cursor.execute())
# 数据库操作可直接通过result = cursor.execute(sql)直接执行SQLite支持的SQL指令。如果指令有结果，则可通过result.fetchall()获得所有的结果。
cursor.execute('''DROP TABLE IF EXISTS student''')
result = cursor.execute('CREATE TABLE student (id INTEGER PRIMARY KEY AUTOINCREMENT, name VARCHAR(20), gender CHAR(1))')

# 执行插入操作(Insert into)
cursor.execute('INSERT INTO student VALUES(NULL, "张珊", "女")')
cursor.execute('INSERT INTO student VALUES(NULL, "李四", "男")')
cursor.execute('INSERT INTO student VALUES(NULL, "王舞", "女")')
cursor.execute('INSERT INTO student VALUES(NULL, "赵六", "男")')

# 通过select 操作检查
results = cursor.execute("SELECT * FROM student").fetchall()
print(f'获取的结果是: {type(results)}类型')
print('打印获取的结果')
for res in results:
    print(res)

# 第四步，提交修改
connect.commit()

# 第五步，关闭游标
cursor.close()

# 第六步，关闭连接
connect.close()


